Computing systems employed to process data from various sources (e.g. mobile devices and the like) may implement a plurality of distinct workers (e.g. distinct hardware nodes, distinct software processes at a given hardware node, or a combination thereof) for handling the incoming data. Such systems may be subject to conflicting design requirements. A first example design requirement is that the incoming data from a given source be processed by the system in the order the data was received from the source. This requirement may be satisfied by consistently assigning data from each source to a particular processor. A second example design requirement is that the workload of the system be balanced among the processors, for example in response to changing activity levels among the sources. This requirement may be satisfied by assigning data from each source to different processors.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.
The apparatus and method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.